package com.ruoyi.material.mapper;

import com.ruoyi.material.domain.BaseFlieRecord;
import com.ruoyi.material.domain.vo.FileRecordVo;
import com.ruoyi.material.domain.vo.FileTotalInfoVo;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 文件记录Mapper接口
 *
 * @author ruoyi
 * @date 2021-07-10
 */

public interface BaseFlieRecordMapper
{
    /**
     * 查询文件记录
     *
     * @param id 文件记录ID
     * @return 文件记录
     */
    public BaseFlieRecord selectBaseFlieRecordById(Long id);

    /**
     * 查询文件记录列表
     *
     * @param baseFlieRecord 文件记录
     * @return 文件记录集合
     */
    public List<BaseFlieRecord> selectBaseFlieRecordList(BaseFlieRecord baseFlieRecord);

    /**
     * 新增文件记录
     *
     * @param baseFlieRecord 文件记录
     * @return 结果
     */
    public int insertBaseFlieRecord(BaseFlieRecord baseFlieRecord);

    /**
     * 修改文件记录
     *
     * @param baseFlieRecord 文件记录
     * @return 结果
     */
    public int updateBaseFlieRecord(BaseFlieRecord baseFlieRecord);

    /**
     * 删除文件记录
     *
     * @param id 文件记录ID
     * @return 结果
     */
    public int deleteBaseFlieRecordById(Long id);

    /**
     * 批量删除文件记录
     *
     * @param ids 需要删除的数据ID
     * @return 结果
     */
    public int deleteBaseFlieRecordByIds(Long[] ids);

    /**
     * 批量添加
     * @param list
     * @return
     */
    public int addBaseFlieRecordList(List<BaseFlieRecord> list);

    /**
     * 批量查询
     * @param ids
     * @return
     */
    List<BaseFlieRecord> selectBaseFlieRecordByIdsAndBaseFileRecord(@Param("baseFileRecord") BaseFlieRecord baseFlieRecord ,@Param("ids") List<Long> ids);


    List<FileRecordVo> selectBaseFlieRecordvOByPCodeAndBaseFileRecord(@Param("baseFileRecord") BaseFlieRecord baseFlieRecord , @Param("pcode") String pcode);

    int addsummaryInformation(Integer id);

    public FileTotalInfoVo selectTotalInfo();

    /**
     * 查询文件记录，根据path_file_name
     *
     * @param path_file_name
     * @return 文件记录
     */
    public BaseFlieRecord selectBaseFlieRecordByPathFileName(String path_file_name);

    /**
     * 根据已经找的的id、filecode的map进行批量删除
     *
     * @param list 上一级的code,本级的p_code
     * @param updateBy
     * @return 结果
     */
    public int delBaseFlieRecordList(@Param("list") List<Integer> list,@Param("updateBy") String updateBy);

    /**
     * 增加：根据标签查询文件记录，
     *
     * @param originalFileName
     * @param contentType
     * @param pcode
     * @param labels
     * @return 文件记录
     */
    public List<FileRecordVo> selectBaseFileRecordVoNewByLabel(@Param("originalFileName") String originalFileName,@Param("contentType") String contentType,@Param("pcode")String pcode,@Param("labels") List labels);

}
